SAFE Logo
CodeMatch Detailed Report
Version: 5.7.2 | Date: 08/27/16 | Time: 18:44:41

SCORE

SETTINGS
Compare file 1: Z:\Zeidman Consulting\projects\DOS and CPM\code\CHM\CPM\1.3\STAT.plm
To file 2: Z:\Zeidman Consulting\projects\DOS and CPM\code\CHM\CPM\1.3\STAT.plm
Links to results: Matching Statements
Matching Comments and Strings
Matching Instruction Sequences
Matching Identifiers
Partially Matching Identifiers
Score
RESULTS
Matching Statements
File1 Line# File2 Line# Statement
11STAT:
99STATUS: PROCEDURE PUBLIC
1010DECLARE COPYRIGHT(*) BYTE DATA (
1313BUFFA LITERALLY ,
1414FCBA LITERALLY ,
1515IOBA LITERALLY
1717DECLARE MALM LITERALLY
2020DECLARE ALLOCA ADDRESS
2222ALLOC BASED ALLOCA (32) BYTE
2424MON1: PROCEDURE(F,A)
25
32
25
32
DECLARE F BYTE
26
33
26
33
A ADDRESS
28
42
28
42
BDOSE: GO TO BDOSE
2929END MON1
3131MON2: PROCEDURE(F,A) BYTE
3535BDOSE: GO TO BDOSE:
36
45
189
36
45
189
RETURN 0
3737END MON2
3939MON3: PROCEDURE(FUNC, INFO) ADDRESS
4040DECLARE FUNC BYTE, INFO ADDRESS
4646END MON3
4949TRUE LITERALLY
5050FALSE LITERALLY
5151FOREVER LITERALLY
5252CR LITERALLY
5353LF LITERALLY
5454WHAT LITERALLY
5656PRINTCHAR: PROCEDURE(CHAR)
5757DECLARE CHAR BYTE
5858CALL MON1(2, CHAR)
5959END PRINTCHAR
6161CRLF: PROCEDURE
6262CALL PRINTCHAR(CR)
6363CALL PRINTCHAR(LF)
6464END CRLF
6666PRINTB: PROCEDURE
68
199
224
414
417
68
199
224
414
417
CALL PRINTCHAR( )
6969END PRINTB
7171PRINT: PROCEDURE (A)
7272DECLARE A ADDRESS
75
215
220
281
410
75
215
220
281
410
CALL CRLF
76
81
76
81
CALL MON1(9,A)
7777END PRINT
7979PRINTX: PROCEDURE(A)
8080DECLARE A ADDRESS#
8282END PRINTX
8484DECLARE DCNT BYTE
8585SELECT: PROCEDURE(D)
8686DECLARE D BYTE
8787CALL MON I(14,D)
8888END SELECT
9090OPEN: PROCEDURE(FCB)
91
96
91
96
DECLARE FCB ADDRESS
9292DCNT = MON2(15,FCB)
9393END OPEN
9595SEARCH: PROCEDURE(FCB)
9797DCNT = MON2(17,FCB)
9898END SEARCH
100100SEARCHN: PROCEDURE
101101DCNT = MON2(18,0)
102102END SEARCHN
104104CSELECT: PROCEDURE BYTE
106106RETURN MON2(25,0)
107107END CSELECT
109109GETALLOCA: PROCEDURE ADDRESS
111111RETURN MON3(27,0)
112112END GETALLOCA
114114DECLARE OLDSP ADDRESS
115115STACK(16) ADDRESS
117117FCB(33) BYTE AT (FCBA)
118118BUFF(128) BYTE AT (BUFFA)
119119IOVAL BYTE AT (IOBA)
122122GETALLOC: PROCEDURE (I) BYTE
124124DECLARE I BYTE
126126ROL(ALLOC(SHR(I,3)), (I AND 111B) + 1)
127127END GETALLOC
129129DEVREQ: PROCEDURE BYTE
132132DECLARE DEVL(*) BYTE DATA
134134DEVR(*) BYTE DATA
140140DECLARE ACCUM(4) BYTE,
141141(ISP,I,J,IOBYTE, ITEMS) BYTE
143143SCAN: PROCEDURE
145145DECLARE (I,B) BYTE
146146SETACC: PROCEDURE(B)
147147DECLARE B BYTE
148148ACCUM(I) * B
148
360
148
360
I=I+1
149149END SETACC
152152DO WHILE BUFF(IBP) = IBP-IBP+1
155
351
155
351
I = 0
156156DO WHILE I < 4
157157IF (B := BUFF(IBP)) > 1 THEN
158158CALL SETACC(B)
159159CALL SETACC( )
160160IF B3 <= 1 OR
161
162
163
164
165
166
161
162
163
164
165
166
B = OR
167167B = THEN BUFF(IBP) = 1
169
171
169
171
IBP = IBP + 1
172172END SCAN
174174MATCH: PROCEDURE(VA,VL) BYTE
176176DECLARE VA ADDRESS
177177V BASED VA (16) BYTE
178178YL BYTE
179179DECLARE (I,J,MATCH,SYNC) BYTE
180180J,SYNC = 0
181181DO SYNC = 1 TO VL
182182MATCH = TRUE
183
210
219
183
210
219
DO I = 0 TO 3
184184IF V(J) <> ACCUM(I) THEN MATCH=FALSE
185185J = J + 1
187187IF MATCH THEN RETURN SYNC
190190END MATCH
192192PRNAME: PROCEDURE(A)
193193DECLARE A ADDRESS,
194194X BASED A BYTE
196196DO WHILE X <>
197197CALL PRINTCHAR(X)
197197A=A+l
200200END PRNAME
202202IBP=1
202202ITEMS = 0
203203DO FOREVER
204
231
236
249
204
231
236
249
CALL SCAN
205205IF (1:=MATCH(.DEVL,6)) = 3 THEN RETURN ITEMS<>0
206206ITEMS = ITEMS+1
207207IF I = 5 THEN
209209IOBYTE = IOVAL
209209J = 0
211
221
211
221
CALL PRNAME(.DEVL(SHL(I,2)))
212
222
289
212
222
289
CALL PRINTX(.( ))
213213CALL PRNAME(.DEVR(SHL(IOBYTE AND 11B,2)+J))
214214J = J + 16
214214IOBYTE = SHR(IOBYTE,2)
218218IF I = 6 THEN
223223DO J = 0 TO 12 BY 4
225225CALL PRNAME(.DEVR(SHL(I,4)+J))
230230J = SHL(I:=I-1,4)
232
251
232
251
IF ACCUM(0) <> THEN
233
238
252
286
406
233
238
252
286
406
CALL PRINT(.( ))
234
239
253
234
239
253
RETURN TRUE
237237IF (J:=MATCH(.DEVR(J),4)-l) = 255 THEN
241241IOBYTE = 1111$1100B
242242DO WHILE (I:=I-1) <> 255
243243IOBYTE = ROL(IOBYTE,2)
244244J = SHL(J,2)
246246IOVAL = (IOVAL AND IOBYTE) OR J
250250IF ACCUM(0) = THEN RETURN TRUE
256256END DEVREQ
258258COUNT: PROCEDURE BYTE
260260DECLARE C BYTE
261261I BYTE
262262C = 0
263263DO I - 0 TO MALM
264264IF NOT GETALLOC(I) THEN C = C + I
266266RETURN C
267267END COUNT
269269PVALUE: PROCEDURE(V)
270270DECLARE (K,V,D,ZERO) BYTE
271271K = 180
272272ZERO = FALSE
273273DC WHILE K <> 0
274274D = V / K
274274V = V MOD K
275275K = K / 10
276276IF ZERO OR K <> 3 THEN
277277ZERO - TRUE
277
339
277
339
CALL PRINTCHAR( +D)
280280CALL DOCHAR( )
282282END PVALUE
284284PRALLOC: PROCEDURE
287287ALLOCA = GETALLOCA
288288CALL PRINTCHAR(CSELECT+ )
290290CALL PVALUE(COUNT)
291291END PRALLOC
293293GETFILE: PROCEDURE
297297FNAM LITERALLY , FEXT LITERALLY ,
298298FRC LITERALLY , FLN LITERALLY ,
299299FDM LITERALLY , FDL LITERALLY ,
300300FTYP LITERALLY
303303FCBN BYTE,
304304FCBS(3840) BYTE,
305305FINX(255) BYTE,
306306FCBE(255) BYTE,
307307FCBK(255) BYTE,
308308FCBR(255) ADDRESS
310310BFCBA ADDRESS,
311311FCBSA ADDRESS,
312312BFCB BASED BFCBA (32) BYTE,
313313FCBV BASED FCBSA (16) BYTE
315315I BYTE,
316316(K,L,M) BYTE,
317317(B,F) BYTE,
318318MATCHED BYTE
320320MULTI16: PROCEDURE
322322FCBSA = SHL(DOUBLE(I),4 ) + FCBS
323323END MULTI16
325325PDECIMAL: PROCEDURE(V,PREC)
329329V ADDRESS,
330330PREC ADDRESS,
331331ZEROSUP BYTE,
332332D BYTE
333333ZEROSUP = TRUE
334334DO WHILE PREC <> 0
335335D = V / PREC
336336V = V MOD PREC
337337PREC = PREC / 10
338338IF PREC <> 0 AND ZEROSUP AND D = 0 THEN CALL PRINTB
339339ZEROSUP = FALSE
342342END PDECIMAL
345345FCBN,FCB(0) = 0
346346FCB(FEXT) = 63
347347CALL SEARCH(FCBA)
348348DO WHILE DCNT <> 255
350350BFCBA = SHL(DCNT AND 11B,5)+BUFFA
351351MATCHED = FALSE
352352DO WHILE NOT MATCHED AND I < FCBN
354
366
394
395
410
354
366
394
395
410
CALL MULTI16
355
396
419
355
396
419
DO K = 1 TO FNAM
356356IF BFCB(K) <> FCBV(K) THEN K = FNAM
358358MATCHED = K = FNAM
363363IF MATCHED THEN I = I - 1
365365FCBN = (I := FCBN) + 1
368368FINX(I) = I
369369DO K = 0 TO FNAM
370370FCBV(K) = BFCB(K)
372372FCBE(I),FCBK(I),FCBR(I) = 0
376376FCBR(I) = FCBR(I) + BFCB(FRC)
378378DO K = FDM TO FDL
379379IF BFCB(K) <> 0 THEN
380380FCBK(I) = FCBK(I) + 1
382382CALL SEARCHN
386386IF FCBN = 0 THEN CALL PRINT(.( ))
389389IF FCBN > 1 THEN
390390L = 1
391391DO WHILE L > 0
392
407
392
407
L = 0
393393DO M = 0 TO FCBN - 2
394394I * FINX(M+l)
394394BFCBA = FCBSA
394394I = FINX(M)
397397IF (B:=BFCB(K)) < (F:=FCBV(K)) THEN
398398K = FINX(M)
398398FINX(M) = FINX(M + 1)
399399FINX(M + 1) = K
399
425
399
425
L = L + 1
399399K = FNAM
401401ELSE IF B > F THEN K := FNAM
408408DO WHILE L < FCBN
409409I = FINX(L)
411411CALL PDECIMAL(FCBR(I), 1000)
412
414
416
412
414
416
CALL PRINTB
413413CALL PDECIMAL(FCBK(!),100)
415415CALL PDECIMAL(FCBE(I),10)
417417CALL PRINTCHAR( +CSELECT)
420420IF FCSV(K) <> THEN
421421IF K = FTYP THEN CALL PRINTCHAR( )
422422CALL PRINTCHAR(FCBV(K))
427427IF FCB(1) = 63 OR FCB(FTYP) = 63 THEN CALL PRALLOC
429429END GETFILE
432432OLDSP = STACKPTR
433433STACKPTR = STACK(LENGTH(STACK))
436436IF FCB(0) <> 0 THEN CALL SELECT(FCB(0)-1)
437437IF FCB(1) = THEN CALL PRALLOC
439439IF NOT DEVREQ THEN
440440CALL GETFILE
442442STACKPTR = OLDSP
443443END STATUS

to top

Matching Comments and Strings
File1 Line# File2 Line# Comment/String
33C P / M S T A T U S C O M M A N D (S T A T)
55COPYRIGHT(C) 1975/1976 DIGITAL RESEARCH
1111COPYRIGHT (C) 1976, DIGITAL RESEARCH
131380H
13
118
13
118
DEFAULT BUFFER
14145CH
1414DEFAULT FC9
1515I0BYTE ADDRESS
1717241
1717MAX BLOCK NUMBER - 1
1818DUMMY OUTER PROCEDURE 'STATUS' WILL START AT 10BH
1919DETERMINE STATUS OF CURRENTLY SELECTED DISK
2121ALLOCA IS THE ADDRESS OF THE DISK ALLOCATION VECTOR
2222ALLOCATION VECTOR
27
34
27
34
PATCH TO JMP 0005
4141PATCH TO CALL 0005
4444PATCH TO MOV H,B MOV L,C
5151WHILE TRUE
6767PRINT BLANK CHARACTER
7373PRINT THE STRING STARTING AT ADDRESS A UNTIL THE
7474NEXT DOLLAR SIGN IS ENCOUNTERED
105105RETURN CURRENT DISK NUMBER
110110GET BASE ADDRESS OF ALLOC VECTOR
114114SP ON ENTRY
115115THIS PROGRAM'S STACK
117117DEFAULT FILE CONTROL BLOCK
119119IO BYTE
123123RETURN THE ITH BIT OF THE ALLOC VECTOR
130130PROCESS DEVICE REQUEST, RETURN TRUE IF FOUND
131131DEVICE TABLES
133133CON:PDR:PUN:LST:DEV:VAL:
135135CONSOLE
135135TTY:CRT:BAT:UC1:
136136READER
136136TTY:PTR:UR1:UR2:
137137PUNCH
137137TTY:PTP:UP1:UP2:
138138LISTING
138138TTY:CRT:LPT:UL1:
144144FILL ACCUM WITH NEXT INPUT VALUE
151151DEBLANK INPUT
154154INITIALIZE ACCUM LENGTH
157157VALID
158158BLANK FILL
175175RETURN INDEX+1 TO VECTOR AT VA IF MATCH
189189NO MATCH
195195PRINT DEVICE NAME AT A
206206FOUND FIRST/NEXT ITEM
207207DEVICE STATUS REQUEST
212212IS $
217217NOT DEV:
218218LIST POSSIBLE ASSIGNMENT
219219EACH LINE SHOWS ONE DEVICE
228228SCAN ITEM I-1 IN DEVICE TABLE
229229FIND BASE OF DESTINATION
233
252
233
252
BAD DELIMITER$
238238INVALID ASSIGNMENT$
241241CONSTRUCT MASK
248248END OF CURRENT ITEM, LOOK FOR MORE
255255OF DO FOREVER
259259COUNT RETURNS THE NUMBER OF BLOCKS REMAINING
260260COUNT
261261SEARCH
285285PRINT ALLOCATION FOR CURRENT DISK
286286BYTES REMAINING ON $
289289, $
294294PROCESS FILE REQUEST
303303NUMBER OF FCB'S COLLECTED SO FAR
304304FCB STORAGE = 16*253*3846
305305INDEX VECTOR USED DURING SORT
306306EXTENT COUNTS
307307KILOBYTE COUNT
308
376
308
376
RECORD COUNT
310310INDEX INTO DIRECTORY BUFFER
311311INDEX INTO FCBS
312312TEMPLATE OVER DIRECTORY
313313TEMPLATE OVER FCBS ENTRY
315315FCB COUNTER DURING COLLECTION AND DISPLAY
316316LOOP COUNTERS
317317TEMPS USED DURING SORT
318318USED DURING FCBS SEARCH
321321UTILITY TO COMPUTE FCBS ADDRESS FROM I
326326PRINT VALUE V WITH PRECISION PREC (10,100,1000)
327327WITH LEADING 2ER0 SUPPRESSION
329329VALUE TO PRINT
330330PRECISION
331331ZERO SUPPRESSION FLAG
332332CURRENT DECIMAL DIGIT
335335GET NEXT DIGIT
336336GET REMAINDER BACK TO V
337337READY FOR NEXT DIGIT
344344READ THE DIRECTORY/ COLLECT ALL COMMON FILE NAMES
346346QUESTION MARK MATCHES ALL
347347FILL DIRECTORY BUFFER
349349ANOTHER ITEM FOUND, COMPARE IT FOR COMMON ENTRY
350350DCNT MOD 4 * 32
353353COMPARE CURRENT ENTRY
357357COMPLETE MATCH IF AT END
364364COPY TO NEW POSITION IN FCBS
367367SAVE INDEX TO ELEMENT FOR LATER SORT
374374ENTRY IS AT, OR WAS PLACED AT LOCATION I IN FCBS
375375FCBE(I) = FCBE(I) + I; /* EXTENT INCREMENTED
377377COUNT KILOBYTES
382382TO NEXT ENTRY IN DIRECTORY
383383OF DO WHILE DCNT () 255
385385NOW DISPLAY THE COLLECTED DATA
386386FILE NOT FOUND$
388388SORT THE FILE NAMES IN ASCENDING ORDER
389389REQUIRES AT LEAST TWO TO SORT
391391BUBBLE SORT
395395SETS FCBSA, BASING FCBV
396396COMPARE FOR LESS OR EQUAL
397397SWITCH
401401STOP COMPARE
406406RECS BYTS EX D:FILENAME.TYP$
409409I IS THE INDEX TO NEXT IN ORDER
411411RRRR
412412BLANK
413413BBB
418418PRINT FILENAME.TYP
431431SAVE STACK POINTER AND RESET
435435PROCESS REQUEST
437437PRINT ALLOCATION
439439MUST BE FILE NAME
441441RESTORE OLD STACK BEFORE EXIT

to top

Matching Instruction Sequences
File1 Line# File2 Line# Number of matching instructions
1 1 383
410 410 10
410 410 10

to top

Matching Identifiers
10 100 1000 1111$1100B 111B 11B 12 128
14 15 16 17 18 180 25 255
27 32 33 3840 63 ACCUM ALLOC ALLOCA
B3 BDOSE BFCB BFCBA BUFF BUFFA CHAR COPYRIGHT
COUNT CR CRLF CSELECT DC DCNT DEVL DEVR
DEVREQ DOCHAR DOUBLE FALSE FCB FCBA FCBE FCBK
FCBN FCBR FCBS FCBSA FCBV FCSV FDL FDM
FEXT FINX FLN FNAM FOREVER FRC FTYP FUNC
GETALLOC GETALLOCA GETFILE IBP INFO IOBA IOBYTE IOVAL
ISP ITEMS LENGTH LF MALM MATCH MATCHED MON
MON1 MON2 MON3 MULTI16 OLDSP OPEN PDECIMAL PRALLOC
PREC PRINT PRINTB PRINTCHAR PRINTX PRNAME PVALUE ROL
SCAN SEARCH SEARCHN SELECT SETACC SHL SHR STACK
STACKPTR STAT STATUS SYNC TRUE VA VL WHAT
YL ZERO ZEROSUP

to top

Partially Matching Identifiers
*** NONE ***
to the top
SCORE 100

CodeSuite copyright 2003-2016 by Software Analysis and Forensic Engineering Corporation